feat(generate): immutable attributes are create-authoritative on split update bodies - #115
Merged
Merged
Conversation
…plit update body The endpoint scheduled tests' update models declare a fraction of their create fields -- username, password, tag ids and their kin exist only at create -- and the emitter reused one assignment list against both bodies, which the bindings check rightly refused. An attribute the evidence marks immutable now reaches the create body and never a split update body: RequiresReplace, driven by the same Behaviour.Immutable, owns changes, and the update body simply omits the field. The checker's update-body verification skips immutable attributes for the same reason, naming the emitter behaviour it mirrors. Same-body resources are untouched -- the gate fires only on a split update body -- so both pilots hold byte-identical. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Needed by the endpoint curation wave in terraform-provider-thousandeyes: the endpoint scheduled tests' update models declare a fraction of their create fields (username, password, tagIds, sslVersionId… exist only on the create request), and the emitter reused one assignment list against both bodies — which
bindings checkrightly refused, suggesting exactly this: "skip this attribute on expand or model it create-authoritative."Now an attribute with
behaviour.immutable: truereaches the create body and never a split update body.RequiresReplace— driven by the same field, triple-gated on probe evidence — owns changes; the update body omits the field; the checker's update-body verification mirrors the emitter.Same-body resources are untouched (the gate fires only when the body splits), so both pilots hold byte-identical — verified by their drift checks. Unit-pinned in the fluent construct tests; all suites green.
🤖 Generated with Claude Code